﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows;
using Apache.NMS.ActiveMQ.Commands;

namespace ModeloGaleriaNET
{
    public class DataGridMessage
    {
        public enum TIPO_MENSAJE { INFO, WARNING, ERROR };
        private DateTime? fecha;
        private string mensaje;
        private ActiveMQMapMessage contenidoInterno;
        private BitmapSource imagen;

        public DataGridMessage()
        {
            fecha = null;
            mensaje = string.Empty;
            contenidoInterno = null;
            imagen = null;
        }

        public DataGridMessage(DateTime? f, string m, TIPO_MENSAJE t)
        {
            IntPtr b = new IntPtr();

            this.fecha = f;
            this.mensaje = m;
            contenidoInterno = null;

            switch (t)
            {
                case TIPO_MENSAJE.INFO: 
                    b = Properties.Resources.Info_16.GetHbitmap();
                    
                    break;
                case TIPO_MENSAJE.WARNING: 
                    b = Properties.Resources.Warning_16.GetHbitmap();
                    break;
                case TIPO_MENSAJE.ERROR: 
                    b = Properties.Resources.Error_16.GetHbitmap();
                    break;
            }
            imagen = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(b, IntPtr.Zero, Int32Rect.Empty,
                        System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
        }

        public DateTime? Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }

        public string Mensaje
        {
            get { return mensaje; }
            set { mensaje = value; }
        }

        public ActiveMQMapMessage Contenido
        {
            get { return contenidoInterno; }
            set { contenidoInterno = value; }
        }

        public string FechaFormat
        {
            get { return ((DateTime)fecha).ToString("g"); }
        }

        public ImageSource ImageSource
        {
            get { return imagen; }
        }
    }
}
